//
//  ILLocalDeviceBindManager.h
//  IMILabKit
//
//  Created by OrrHsiao on 2022/10/12.
//

#import <Foundation/Foundation.h>
#import "ILLocalDeviceBindModel.h"
@class ILException;

typedef void(^ILLocalDeviceBindCompletBlock)(NSDictionary * _Nullable resp, ILException * _Nullable error);

NS_ASSUME_NONNULL_BEGIN

@interface ILLocalDeviceBindManager : NSObject

- (instancetype)init NS_UNAVAILABLE;
- (instancetype)new NS_UNAVAILABLE;
- (id)copy NS_UNAVAILABLE;
- (id)mutableCopy NS_UNAVAILABLE;

/// 获取实例
+ (instancetype)sharedManager;

/// 初始化
/// - Parameter verifyUrl: 网络联通状态校验时请求的网址,默认值为http://www.apple.com
- (void)initConfigWithVerifyUrl:(nullable NSString *)verifyUrl;

/// 绑定设备
/// - Parameters:
///   - model: 设备model
///   - completeBlock: 完成回调
- (void)bindDevice:(nonnull ILLocalDeviceBindModel *)model completBlock:(ILLocalDeviceBindCompletBlock)completBlock;

/// 移除指定的本地待绑定设备的缓存,下次有网时就不再会自动尝试绑定该设备
/// - Parameter deviceName: dn
- (void)removeBindDeviceCache:(nonnull NSString *)deviceName;

/// 本地设备绑定成功通知名称
+ (NSString *)localDeviceBindSuccessNotifName;

@end

NS_ASSUME_NONNULL_END
